#include "protocolo_NIPC.h"

int cargarEstructura(NIPC* paquete,int id,char*mensaje){


	paquete->payloadDescriptor = id;
	paquete->payloadLength = (long)strlen(mensaje);
	strncpy(paquete->mensaje,mensaje,(long)strlen(mensaje));

	return 0;
}

/*______________________________________________________________________________________*/

int serializar_NIPC(NIPC paquete,char*buffer){


	sprintf(buffer,"%c",paquete.payloadDescriptor);
	sprintf(buffer + 1,"%i",paquete.payloadLength);
	sprintf(buffer + strlen(buffer),"%s",paquete.mensaje);

	return 0;
}

/*______________________________________________________________________________________*/

int enviarNIPC(char*buffer,int tamanio,int socketNIPC){ //sirve para el handshake tambien

	int resultado;


	resultado = enviarDatos(buffer,tamanio,socketNIPC);

			if(resultado == 0){
				printf("Envio Exitoso\n");
				return 0;
			}
			else{
				printf("Fallo el envio del Payload\n");
				return 1;
			}

		return 0;

	}

/*______________________________________________________________________________________*/

int recibirNIPC(char*buffer,int socketNIPC){

	int resultado;

	resultado = recibirDatos(buffer,socketNIPC);

			if(resultado == 0){
				printf("Datos recibidos\n");
				return 0;
			}
			else{
				printf("Fallo la recepcion del payload\n");
				return 1;
			}

}

/*______________________________________________________________________________________*/
